package MD.NJavaDataRangers;

import android.app.Activity;
import android.content.Context;
import android.telephony.TelephonyManager;
import android.util.Log;

import com.bytedance.applog.AppLog;
import com.bytedance.applog.InitConfig;
import com.bytedance.applog.util.UriConstants;

import org.json.JSONObject;

import java.util.HashMap;
import java.util.Map;

import MD.NJavaBase.NJavaBase;

public class NJavaDataRangers {



    static String Tag = "NJavaDataRangers";

    //初始化
    public static void Go(String id, String channel, Activity context)
    {
        /* 初始化开始 */

        final InitConfig config = new InitConfig(id, channel); // appid和渠道，appid如不清楚请联系客户成功经理

        //上报域名可根据业务情况自己设置上报域名，国内版本只支持上报到DEFAULT，海外GDRP版本只支持SINGAPORE
        /* 国内: DEFAULT */
        config.setUriConfig (UriConstants.DEFAULT);


        //config.setLogger ((msg, t) -> Log._d_ (TAG, msg, t)); // 是否在控制台输出日志，可用于观察用户行为日志上报情况，建议仅在调试时使用
        config.setEnablePlay(true); // 是否开启游戏模式，游戏APP建议设置为 true
        config.setAbEnable(true); // 是否开启A/B Test功能

        config.setAutoStart(true);
        AppLog.init(context, config);
        /* 初始化结束 */

        AppLog.setUserUniqueID(NJavaDataRangers.getIMEI(NJavaBase.getActivity()));

        /* 自定义 “用户公共属性”（可选，初始化后调用, key相同会覆盖）
      	关于自定义 “用户公共属性” 请注意：1. 上报机制是随着每一次日志发送进行提交，默认的日志发送频率是1分钟，所以如果在一分钟内连续修改自定义用户公共属性，，按照日志发送前的最后一次修改为准， 2. 不推荐高频次修改，如每秒修改一次 */
        Map<String,Object> headerMap = new HashMap<String, Object>();
        headerMap.put("level",8);
        headerMap.put("gender","female");
        AppLog.setHeaderInfo((HashMap<String, Object>)headerMap);
    }
    public static String getIMEI(Context context) {
        String imei;
        try {
            TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
            imei = telephonyManager.getDeviceId();
        } catch (Exception e) {
            imei = "";
        }
        return imei;
    }
    public static  void AddEvent(String eventName, JSONObject obj){
        AppLog.onEventV3(eventName,obj);
    }



}


